iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
Security

Web滲透測試 - Burp Suite 完整教學系列 第 13

Intruder 帳密暴力破解與列舉FUZZING找漏洞的好幫手

  • 分享至 

  • xImage
  •  

Intruder 可以算是Brup當中最強大與好用的工具之一。
其中的原理其實相當簡單好理解,
就是在原始的請求中,通過設定一些位置的參數值為變數,
再給予這個變數一堆payload(字典檔)進行替換持續送出不同的請求,
最後透過每個不同請求所得到的回應內容來進行分析比對。

下面是一張簡單的示意圖。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110252KkC5EUk.png

假設今天有一個登入頁面的請求使用POST傳輸,
(姑且先不管正確格式該有換行與可能需要Header)
傳輸的內容中,有兩個參數,
分別是user與pwd這兩個參數,
假設我第一次的請求中,
我在這兩個參數中分別輸入的Peter與123兩個參數值。
然後登入失敗了,
但是我認為我的密碼123是正確的,
可是帳號是不是正確的我不確定,
所以我準備了一堆「我覺得可能是帳號的內容」,
也就是我們所謂的Payloads或是字典檔,
而我想要將這些Payloads一筆一筆的輸入然後送出,
來確認哪一個才能成功,哪一個才是真正的帳號。
不過這個過程如果手動來做,
如果Payloads內容很多,則會相當耗費並且浪費時間,
所以我就可以利用Intruder來協助我,
Intruder可以自動的將payloads的內容一筆一筆替換掉帳號的內容,
然後就送出一個新的請求,持續地重複這樣的動作。

Intruder通常會被用在以下場景:

  • 列舉使用者的帳號、密碼、表單內容等等
  • FUZZING測試
  • 進行注入型的漏洞
  • URL路徑或參數的列舉
  • 數據蒐集

使用的方式是可以將攔截的請求、
SiteMap中的請求、Repeater的請求,
其實不管是在哪裡,在Burp當中都可以對請求(Request)點選右鍵,
將這個Request Send to Intruder。

Intruder下方有四個選項:
分別為Target、Positions、Payloads、Options。

https://ithelp.ithome.com.tw/upload/images/20200928/201141105rJOo9qrDR.png

接下來我們直接針對我們的靶機來進行實作,
以實作的方式做過一遍應該更容易了解Intruder。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110j2x3BKhshj.png

https://ithelp.ithome.com.tw/upload/images/20200928/201141100bMjnIN8YR.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110QmC7r6Vo0q.png

首先當然是開啟靶機,我們點進DVWA,
在帳號密碼欄位輸入帳號admin,
密碼欄位故意輸入一個錯誤的,譬如說notmypwd。
送出之後,Burp攔截到了這個請求,
我們可以直接在攔截的地方點選右鍵send Intruder。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110xy63vUBj0e.png

接下來我們把畫面切到Intruder功能。
我們可以在Target中看到關於目標的Host與Port資訊,
這邊其實沒甚麼好說的,就還是要注意一下自己有沒有打錯人就好。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110o6ZFUftuge.png

接著我們重點關注到Positions,
Position的用途是定義你要替換的內容位置。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110Z5FSI2nSSa.png

https://ithelp.ithome.com.tw/upload/images/20200928/2011411092uAlOJG5j.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110uk5Ty9N9pD.png

在position的地方可以看到有些字串被給highlight起來,
這代表是要進行嘗試替換破解的字串,
這邊必須要確保設定的參數正確,才不會導致我們浪費時間送出請求。
下圖中可以看到被圈起來的參數有相當的多,
這個是Burp預設認定為變數的地方,會先幫我們圈選起來,
但實際上我們只要改變password的值而已。
所以我們按一下右邊的clear,將我們要改的變數圈選起來按add。
(假設我們已經知道帳號是admin, 所以只將密碼給add)

https://ithelp.ithome.com.tw/upload/images/20200928/201141106hBoRcjVUe.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110TTMsq2LQPN.png

Attack type先選擇Sniper即可,
關於Attack type詳細會於明天介紹,
今天先讓我們完成一個流程讓大家稍微清楚Intruder流程與效果。
設定好了Positions之後點選到Payload的選項
payload通常都是一個list, 就是你要發送給server的資料
這邊Payload set選1(當然我相信你也只有1可以選),
payload type先選擇simple list,
關於Payloads也一樣,詳細會於明天介紹。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110ahfcFOPqSq.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110eyxQ9Sp0w2.png

Playload Option的部分,
這邊其實就是要設定我們要使用的Payload(字典檔)了。
可以在Add的欄位逐項的輸入我們要填入的payload,
也可以利用Load...載入我們的payload,
如果是專業版的,下方會提供一些預設字典檔可以直接載入。
這邊我們就手動輸入一些單字,按Add新增就可以了,
隨便新增個幾個就可以了,不過要記得其中要有password才行。

這邊設定好之後下面其他設定先不理會,
直接大膽地按下又上方的Start attack,
會彈出一個進行攻擊的畫面。

https://ithelp.ithome.com.tw/upload/images/20200928/201141102Ge0AVpGQa.png

我們可以從這邊看出目前的暴力破解進度
也可以直接觀察回應的結果。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110ouRZiW8icb.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110sMhQVqKY2j.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110MaXt0hbfBr.png

隨便點一個進去看看,可以看到Request跟Response的內容,
也可以看到Request當中的內容的確有被替換掉。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110FLh9DGwSuL.png

不過很尷尬的是,我也是進行暴力破解之後,
才注意到原來DVWA不管是密碼正確還是錯誤,都會進行轉址。
可以從圖看得出來,不管密碼是正確還是錯誤,
我們都會得到一樣的Status code與回應內容長度。
這樣我們沒辦法分辨哪一組密碼才是對的阿,
所以先關閉這個視窗,讓我們回頭稍微更改一個設定再暴力破解一次。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110l4IZ0gtwXA.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110z8lq7J3Rjq.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110qgIMGb4J0Y.png

除了剛剛的設定以外呢,我們需要到Options的功能,
往下滑到最下面,把Redirections的選項改成勾選Always,
這樣待會我們再進行暴力破解的時候,
如果我們送出的請求得到轉址的回應,Burp就會自動去follow這個轉址。

https://ithelp.ithome.com.tw/upload/images/20200928/20114110eroUhtVfWE.png

勾選完畢之後,就毫無懸念的再按下Start attack,
因為數量很少,很快就會跑完了。

https://ithelp.ithome.com.tw/upload/images/20200928/201141101VmN1xhet6.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110r93FZBdLRO.png

https://ithelp.ithome.com.tw/upload/images/20200928/20114110cH5xtR3mJO.png

這時候雖然回應的Status Code仍然還是一樣的,
但是回應的內容長度 Length,卻是可以看得出差異的,
可以透過直接觀察或是排序來看,
總之我們會發現有個回應的內容長度比較不一樣,
在帳密猜測暴力破解的時候,這通常就表示著你猜對了~
我們也可以點進去看看Response的內容來確認看看。

藉由Status Code與Length這兩個欄位,
來觀察暴力破解或是FUZZING、列舉的結果,
算是最基本的功力與觀念,稍微更進階的操作,
會於接下來幾天介紹的~

今天就先這樣啦,
裊裊秋風動,淒淒煙雨繁。


上一篇
Decoder 那些讓人看不懂的東西是甚麼
下一篇
Intruder Attack type & Payloads - 擁有千種姿態的攻擊模式
系列文
Web滲透測試 - Burp Suite 完整教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言